<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/capability.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/capability.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * This is &lt;linux/capability.h&gt;</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * Andrew G. Morgan &lt;morgan@kernel.org&gt;</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * Alexander Kjeldaas &lt;astor@guardian.no&gt;</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * with help from Aleph1, Roland Buresund and Andrew Main.</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * See here for the libcap library (&quot;POSIX draft&quot; compliance):</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> *</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> */</span>
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfQ0FQQUJJTElUWV9IXzA_"><span class="b">_UAPI_LINUX_CAPABILITY_H</span></a>
<a name="14" /><span class="True">      14:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfQ0FQQUJJTElUWV9IXzA_"><span class="b">_UAPI_LINUX_CAPABILITY_H</span></a>
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="17" /><span class="True">      17:</span> 
<a name="18" /><span class="True">      18:</span> <span class="m">struct</span> <span class="b">task_struct</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="k">/* User-level do most of the mapping between kernel and user</span>
<a name="21" /><span class="True">      21:</span> <span class="k">   capabilities based on the version tag given by the kernel. The</span>
<a name="22" /><span class="True">      22:</span> <span class="k">   kernel might be somewhat backwards compatible, but don&apos;t bet on</span>
<a name="23" /><span class="True">      23:</span> <span class="k">   it. */</span>
<a name="24" /><span class="True">      24:</span> 
<a name="25" /><span class="True">      25:</span> <span class="k">/* Note, cap_t, is defined by POSIX (draft) to be an &quot;opaque&quot; pointer to</span>
<a name="26" /><span class="True">      26:</span> <span class="k">   a set of three capability sets.  The transposition of 3*the</span>
<a name="27" /><span class="True">      27:</span> <span class="k">   following structure to such a composite is better handled in a user</span>
<a name="28" /><span class="True">      28:</span> <span class="k">   library since the draft standard requires the use of malloc/free</span>
<a name="29" /><span class="True">      29:</span> <span class="k">   etc.. */</span>
<a name="30" /><span class="True">      30:</span> 
<a name="31" /><span class="True">      31:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8xXzA_"><span class="b">_LINUX_CAPABILITY_VERSION_1</span></a>  <span class="c">0x19980330</span>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVTMyU18xXzA_"><span class="b">_LINUX_CAPABILITY_U32S_1</span></a>     <span class="c">1</span>
<a name="33" /><span class="True">      33:</span> 
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8yXzA_"><span class="b">_LINUX_CAPABILITY_VERSION_2</span></a>  <span class="c">0x20071026</span>  <span class="k">/* deprecated - use v3 */</span>
<a name="35" /><span class="True">      35:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVTMyU18yXzA_"><span class="b">_LINUX_CAPABILITY_U32S_2</span></a>     <span class="c">2</span>
<a name="36" /><span class="True">      36:</span> 
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8zXzA_"><span class="b">_LINUX_CAPABILITY_VERSION_3</span></a>  <span class="c">0x20080522</span>
<a name="38" /><span class="True">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVTMyU18zXzA_"><span class="b">_LINUX_CAPABILITY_U32S_3</span></a>     <span class="c">2</span>
<a name="39" /><span class="True">      39:</span> 
<a name="40" /><span class="True">      40:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">__user_cap_header_struct</span> <span class="f">{</span>
<a name="41" /><span class="True">      41:</span>     <span class="b">__u32</span> <span class="b">version</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span>     <span class="m">int</span> <span class="b">pid</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span> <span class="f">}</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="b">cap_user_header_t</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">__user_cap_data_struct</span> <span class="f">{</span>
<a name="46" /><span class="True">      46:</span>         <span class="b">__u32</span> <span class="b">effective</span><span class="f">;</span>
<a name="47" /><span class="True">      47:</span>         <span class="b">__u32</span> <span class="b">permitted</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span>         <span class="b">__u32</span> <span class="b">inheritable</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span> <span class="f">}</span> <a href="cpu.c_macros_ref.html#_X191c2VyXzA_"><span class="b">__user</span></a> <span class="f">*</span><span class="b">cap_user_data_t</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> 
<a name="51" /><span class="True">      51:</span> 
<a name="52" /><span class="True">      52:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl9NQVNLXzA_"><span class="b">VFS_CAP_REVISION_MASK</span></a>    <span class="c">0xFF000000</span>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl9TSElGVF8w"><span class="b">VFS_CAP_REVISION_SHIFT</span></a>    <span class="c">24</span>
<a name="54" /><span class="True">      54:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9GTEFHU19NQVNLXzA_"><span class="b">VFS_CAP_FLAGS_MASK</span></a>    <span class="f">~</span><a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl9NQVNLXzA_"><span class="b">VFS_CAP_REVISION_MASK</span></a>
<a name="55" /><span class="True">      55:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9GTEFHU19FRkZFQ1RJVkVfMA__"><span class="b">VFS_CAP_FLAGS_EFFECTIVE</span></a>    <span class="c">0x000001</span>
<a name="56" /><span class="True">      56:</span> 
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl8xXzA_"><span class="b">VFS_CAP_REVISION_1</span></a>    <span class="c">0x01000000</span>
<a name="58" /><span class="True">      58:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9VMzJfMV8w"><span class="b">VFS_CAP_U32_1</span></a>           <span class="c">1</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WEFUVFJfQ0FQU19TWl8xXzA_"><span class="b">XATTR_CAPS_SZ_1</span></a>         <span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="b">__le32</span><span class="f">)</span><span class="f">*</span><span class="f">(</span><span class="c">1</span> <span class="f">+</span> <span class="c">2</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_VkZTX0NBUF9VMzJfMV8w"><span class="b">VFS_CAP_U32_1</span></a><span class="f">)</span><span class="f">)</span>
<a name="60" /><span class="True">      60:</span> 
<a name="61" /><span class="True">      61:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl8yXzA_"><span class="b">VFS_CAP_REVISION_2</span></a>    <span class="c">0x02000000</span>
<a name="62" /><span class="True">      62:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_VkZTX0NBUF9VMzJfMl8w"><span class="b">VFS_CAP_U32_2</span></a>           <span class="c">2</span>
<a name="63" /><span class="True">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WEFUVFJfQ0FQU19TWl8yXzA_"><span class="b">XATTR_CAPS_SZ_2</span></a>         <span class="f">(</span><span class="m">sizeof</span><span class="f">(</span><span class="b">__le32</span><span class="f">)</span><span class="f">*</span><span class="f">(</span><span class="c">1</span> <span class="f">+</span> <span class="c">2</span><span class="f">*</span><a href="cpu.c_macros_ref.html#_VkZTX0NBUF9VMzJfMl8w"><span class="b">VFS_CAP_U32_2</span></a><span class="f">)</span><span class="f">)</span>
<a name="64" /><span class="True">      64:</span> 
<a name="65" /><span class="True">      65:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_WEFUVFJfQ0FQU19TWl8w"><span class="b">XATTR_CAPS_SZ</span></a>           <a href="cpu.c_macros_noref.html#_WEFUVFJfQ0FQU19TWl8yXzA_"><span class="b">XATTR_CAPS_SZ_2</span></a>
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_VkZTX0NBUF9VMzJfMA__"><span class="b">VFS_CAP_U32</span></a>             <a href="cpu.c_macros_ref.html#_VkZTX0NBUF9VMzJfMl8w"><span class="b">VFS_CAP_U32_2</span></a>
<a name="67" /><span class="True">      67:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl8w"><span class="b">VFS_CAP_REVISION</span></a>    <a href="cpu.c_macros_noref.html#_VkZTX0NBUF9SRVZJU0lPTl8yXzA_"><span class="b">VFS_CAP_REVISION_2</span></a>
<a name="68" /><span class="True">      68:</span> 
<a name="69" /><span class="True">      69:</span> <span class="m">struct</span> <span class="b">vfs_cap_data</span> <span class="f">{</span>
<a name="70" /><span class="True">      70:</span>     <span class="b">__le32</span> <span class="b">magic_etc</span><span class="f">;</span>            <span class="k">/* Little endian */</span>
<a name="71" /><span class="True">      71:</span>     <span class="m">struct</span> <span class="f">{</span>
<a name="72" /><span class="True">      72:</span>         <span class="b">__le32</span> <span class="b">permitted</span><span class="f">;</span>    <span class="k">/* Little endian */</span>
<a name="73" /><span class="True">      73:</span>         <span class="b">__le32</span> <span class="b">inheritable</span><span class="f">;</span>  <span class="k">/* Little endian */</span>
<a name="74" /><span class="True">      74:</span>     <span class="f">}</span> <span class="b">data</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_VkZTX0NBUF9VMzJfMA__"><span class="b">VFS_CAP_U32</span></a><span class="f">]</span><span class="f">;</span>
<a name="75" /><span class="True">      75:</span> <span class="f">}</span><span class="f">;</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="False">      77:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19LRVJORUxfX18w"><span class="b">__KERNEL__</span></a>
<a name="78" /><span class="False">      78:</span> 
<a name="79" /><span class="False">      79:</span> <span class="k">/*</span>
<a name="80" /><span class="False">      80:</span> <span class="k"> * Backwardly compatible definition for source code - trapped in a</span>
<a name="81" /><span class="False">      81:</span> <span class="k"> * 32-bit world. If you find you need this, please consider using</span>
<a name="82" /><span class="False">      82:</span> <span class="k"> * libcap to untrap yourself...</span>
<a name="83" /><span class="False">      83:</span> <span class="k"> */</span>
<a name="84" /><span class="False">      84:</span> <span class="f">#</span><span class="n">define</span> <span class="b">_LINUX_CAPABILITY_VERSION</span>  <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8xXzA_"><span class="b">_LINUX_CAPABILITY_VERSION_1</span></a>
<a name="85" /><span class="False">      85:</span> <span class="f">#</span><span class="n">define</span> <span class="b">_LINUX_CAPABILITY_U32S</span>     <a href="cpu.c_macros_noref.html#_X0xJTlVYX0NBUEFCSUxJVFlfVTMyU18xXzA_"><span class="b">_LINUX_CAPABILITY_U32S_1</span></a>
<a name="86" /><span class="False">      86:</span> 
<a name="87" /><span class="True">      87:</span> <span class="f">#</span><span class="n">endif</span>
<a name="88" /><span class="True">      88:</span> 
<a name="89" /><span class="True">      89:</span> 
<a name="90" /><span class="True">      90:</span> <span class="k">/**</span>
<a name="91" /><span class="True">      91:</span> <span class="k"> ** POSIX-draft defined capabilities.</span>
<a name="92" /><span class="True">      92:</span> <span class="k"> **/</span>
<a name="93" /><span class="True">      93:</span> 
<a name="94" /><span class="True">      94:</span> <span class="k">/* In a system with the [_POSIX_CHOWN_RESTRICTED] option defined, this</span>
<a name="95" /><span class="True">      95:</span> <span class="k">   overrides the restriction of changing file ownership and group</span>
<a name="96" /><span class="True">      96:</span> <span class="k">   ownership. */</span>
<a name="97" /><span class="True">      97:</span> 
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0NIT1dOXzA_"><span class="b">CAP_CHOWN</span></a>            <span class="c">0</span>
<a name="99" /><span class="True">      99:</span> 
<a name="100" /><span class="True">     100:</span> <span class="k">/* Override all DAC access, including ACL execute access if</span>
<a name="101" /><span class="True">     101:</span> <span class="k">   [_POSIX_ACL] is defined. Excluding DAC access covered by</span>
<a name="102" /><span class="True">     102:</span> <span class="k">   CAP_LINUX_IMMUTABLE. */</span>
<a name="103" /><span class="True">     103:</span> 
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0RBQ19PVkVSUklERV8w"><span class="b">CAP_DAC_OVERRIDE</span></a>     <span class="c">1</span>
<a name="105" /><span class="True">     105:</span> 
<a name="106" /><span class="True">     106:</span> <span class="k">/* Overrides all DAC restrictions regarding read and search on files</span>
<a name="107" /><span class="True">     107:</span> <span class="k">   and directories, including ACL restrictions if [_POSIX_ACL] is</span>
<a name="108" /><span class="True">     108:</span> <span class="k">   defined. Excluding DAC access covered by CAP_LINUX_IMMUTABLE. */</span>
<a name="109" /><span class="True">     109:</span> 
<a name="110" /><span class="True">     110:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0RBQ19SRUFEX1NFQVJDSF8w"><span class="b">CAP_DAC_READ_SEARCH</span></a>  <span class="c">2</span>
<a name="111" /><span class="True">     111:</span> 
<a name="112" /><span class="True">     112:</span> <span class="k">/* Overrides all restrictions about allowed operations on files, where</span>
<a name="113" /><span class="True">     113:</span> <span class="k">   file owner ID must be equal to the user ID, except where CAP_FSETID</span>
<a name="114" /><span class="True">     114:</span> <span class="k">   is applicable. It doesn&apos;t override MAC and DAC restrictions. */</span>
<a name="115" /><span class="True">     115:</span> 
<a name="116" /><span class="True">     116:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0ZPV05FUl8w"><span class="b">CAP_FOWNER</span></a>           <span class="c">3</span>
<a name="117" /><span class="True">     117:</span> 
<a name="118" /><span class="True">     118:</span> <span class="k">/* Overrides the following restrictions that the effective user ID</span>
<a name="119" /><span class="True">     119:</span> <span class="k">   shall match the file owner ID when setting the S_ISUID and S_ISGID</span>
<a name="120" /><span class="True">     120:</span> <span class="k">   bits on that file; that the effective group ID (or one of the</span>
<a name="121" /><span class="True">     121:</span> <span class="k">   supplementary group IDs) shall match the file owner ID when setting</span>
<a name="122" /><span class="True">     122:</span> <span class="k">   the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are</span>
<a name="123" /><span class="True">     123:</span> <span class="k">   cleared on successful return from chown(2) (not implemented). */</span>
<a name="124" /><span class="True">     124:</span> 
<a name="125" /><span class="True">     125:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0ZTRVRJRF8w"><span class="b">CAP_FSETID</span></a>           <span class="c">4</span>
<a name="126" /><span class="True">     126:</span> 
<a name="127" /><span class="True">     127:</span> <span class="k">/* Overrides the restriction that the real or effective user ID of a</span>
<a name="128" /><span class="True">     128:</span> <span class="k">   process sending a signal must match the real or effective user ID</span>
<a name="129" /><span class="True">     129:</span> <span class="k">   of the process receiving the signal. */</span>
<a name="130" /><span class="True">     130:</span> 
<a name="131" /><span class="True">     131:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0tJTExfMA__"><span class="b">CAP_KILL</span></a>             <span class="c">5</span>
<a name="132" /><span class="True">     132:</span> 
<a name="133" /><span class="True">     133:</span> <span class="k">/* Allows setgid(2) manipulation */</span>
<a name="134" /><span class="True">     134:</span> <span class="k">/* Allows setgroups(2) */</span>
<a name="135" /><span class="True">     135:</span> <span class="k">/* Allows forged gids on socket credentials passing. */</span>
<a name="136" /><span class="True">     136:</span> 
<a name="137" /><span class="True">     137:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NFVEdJRF8w"><span class="b">CAP_SETGID</span></a>           <span class="c">6</span>
<a name="138" /><span class="True">     138:</span> 
<a name="139" /><span class="True">     139:</span> <span class="k">/* Allows set*uid(2) manipulation (including fsuid). */</span>
<a name="140" /><span class="True">     140:</span> <span class="k">/* Allows forged pids on socket credentials passing. */</span>
<a name="141" /><span class="True">     141:</span> 
<a name="142" /><span class="True">     142:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NFVFVJRF8w"><span class="b">CAP_SETUID</span></a>           <span class="c">7</span>
<a name="143" /><span class="True">     143:</span> 
<a name="144" /><span class="True">     144:</span> 
<a name="145" /><span class="True">     145:</span> <span class="k">/**</span>
<a name="146" /><span class="True">     146:</span> <span class="k"> ** Linux-specific capabilities</span>
<a name="147" /><span class="True">     147:</span> <span class="k"> **/</span>
<a name="148" /><span class="True">     148:</span> 
<a name="149" /><span class="True">     149:</span> <span class="k">/* Without VFS support for capabilities:</span>
<a name="150" /><span class="True">     150:</span> <span class="k"> *   Transfer any capability in your permitted set to any pid,</span>
<a name="151" /><span class="True">     151:</span> <span class="k"> *   remove any capability in your permitted set from any pid</span>
<a name="152" /><span class="True">     152:</span> <span class="k"> * With VFS support for capabilities (neither of above, but)</span>
<a name="153" /><span class="True">     153:</span> <span class="k"> *   Add any capability from current&apos;s capability bounding set</span>
<a name="154" /><span class="True">     154:</span> <span class="k"> *       to the current process&apos; inheritable set</span>
<a name="155" /><span class="True">     155:</span> <span class="k"> *   Allow taking bits out of capability bounding set</span>
<a name="156" /><span class="True">     156:</span> <span class="k"> *   Allow modification of the securebits for a process</span>
<a name="157" /><span class="True">     157:</span> <span class="k"> */</span>
<a name="158" /><span class="True">     158:</span> 
<a name="159" /><span class="True">     159:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NFVFBDQVBfMA__"><span class="b">CAP_SETPCAP</span></a>          <span class="c">8</span>
<a name="160" /><span class="True">     160:</span> 
<a name="161" /><span class="True">     161:</span> <span class="k">/* Allow modification of S_IMMUTABLE and S_APPEND file attributes */</span>
<a name="162" /><span class="True">     162:</span> 
<a name="163" /><span class="True">     163:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX0xJTlVYX0lNTVVUQUJMRV8w"><span class="b">CAP_LINUX_IMMUTABLE</span></a>  <span class="c">9</span>
<a name="164" /><span class="True">     164:</span> 
<a name="165" /><span class="True">     165:</span> <span class="k">/* Allows binding to TCP/UDP sockets below 1024 */</span>
<a name="166" /><span class="True">     166:</span> <span class="k">/* Allows binding to ATM VCIs below 32 */</span>
<a name="167" /><span class="True">     167:</span> 
<a name="168" /><span class="True">     168:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX05FVF9CSU5EX1NFUlZJQ0VfMA__"><span class="b">CAP_NET_BIND_SERVICE</span></a> <span class="c">10</span>
<a name="169" /><span class="True">     169:</span> 
<a name="170" /><span class="True">     170:</span> <span class="k">/* Allow broadcasting, listen to multicast */</span>
<a name="171" /><span class="True">     171:</span> 
<a name="172" /><span class="True">     172:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX05FVF9CUk9BRENBU1RfMA__"><span class="b">CAP_NET_BROADCAST</span></a>    <span class="c">11</span>
<a name="173" /><span class="True">     173:</span> 
<a name="174" /><span class="True">     174:</span> <span class="k">/* Allow interface configuration */</span>
<a name="175" /><span class="True">     175:</span> <span class="k">/* Allow administration of IP firewall, masquerading and accounting */</span>
<a name="176" /><span class="True">     176:</span> <span class="k">/* Allow setting debug option on sockets */</span>
<a name="177" /><span class="True">     177:</span> <span class="k">/* Allow modification of routing tables */</span>
<a name="178" /><span class="True">     178:</span> <span class="k">/* Allow setting arbitrary process / process group ownership on</span>
<a name="179" /><span class="True">     179:</span> <span class="k">   sockets */</span>
<a name="180" /><span class="True">     180:</span> <span class="k">/* Allow binding to any address for transparent proxying (also via NET_RAW) */</span>
<a name="181" /><span class="True">     181:</span> <span class="k">/* Allow setting TOS (type of service) */</span>
<a name="182" /><span class="True">     182:</span> <span class="k">/* Allow setting promiscuous mode */</span>
<a name="183" /><span class="True">     183:</span> <span class="k">/* Allow clearing driver statistics */</span>
<a name="184" /><span class="True">     184:</span> <span class="k">/* Allow multicasting */</span>
<a name="185" /><span class="True">     185:</span> <span class="k">/* Allow read/write of device-specific registers */</span>
<a name="186" /><span class="True">     186:</span> <span class="k">/* Allow activation of ATM control sockets */</span>
<a name="187" /><span class="True">     187:</span> 
<a name="188" /><span class="True">     188:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX05FVF9BRE1JTl8w"><span class="b">CAP_NET_ADMIN</span></a>        <span class="c">12</span>
<a name="189" /><span class="True">     189:</span> 
<a name="190" /><span class="True">     190:</span> <span class="k">/* Allow use of RAW sockets */</span>
<a name="191" /><span class="True">     191:</span> <span class="k">/* Allow use of PACKET sockets */</span>
<a name="192" /><span class="True">     192:</span> <span class="k">/* Allow binding to any address for transparent proxying (also via NET_ADMIN) */</span>
<a name="193" /><span class="True">     193:</span> 
<a name="194" /><span class="True">     194:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX05FVF9SQVdfMA__"><span class="b">CAP_NET_RAW</span></a>          <span class="c">13</span>
<a name="195" /><span class="True">     195:</span> 
<a name="196" /><span class="True">     196:</span> <span class="k">/* Allow locking of shared memory segments */</span>
<a name="197" /><span class="True">     197:</span> <span class="k">/* Allow mlock and mlockall (which doesn&apos;t really have anything to do</span>
<a name="198" /><span class="True">     198:</span> <span class="k">   with IPC) */</span>
<a name="199" /><span class="True">     199:</span> 
<a name="200" /><span class="True">     200:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0lQQ19MT0NLXzA_"><span class="b">CAP_IPC_LOCK</span></a>         <span class="c">14</span>
<a name="201" /><span class="True">     201:</span> 
<a name="202" /><span class="True">     202:</span> <span class="k">/* Override IPC ownership checks */</span>
<a name="203" /><span class="True">     203:</span> 
<a name="204" /><span class="True">     204:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0lQQ19PV05FUl8w"><span class="b">CAP_IPC_OWNER</span></a>        <span class="c">15</span>
<a name="205" /><span class="True">     205:</span> 
<a name="206" /><span class="True">     206:</span> <span class="k">/* Insert and remove kernel modules - modify kernel without limit */</span>
<a name="207" /><span class="True">     207:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19NT0RVTEVfMA__"><span class="b">CAP_SYS_MODULE</span></a>       <span class="c">16</span>
<a name="208" /><span class="True">     208:</span> 
<a name="209" /><span class="True">     209:</span> <span class="k">/* Allow ioperm/iopl access */</span>
<a name="210" /><span class="True">     210:</span> <span class="k">/* Allow sending USB messages to any device via /proc/bus/usb */</span>
<a name="211" /><span class="True">     211:</span> 
<a name="212" /><span class="True">     212:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19SQVdJT18w"><span class="b">CAP_SYS_RAWIO</span></a>        <span class="c">17</span>
<a name="213" /><span class="True">     213:</span> 
<a name="214" /><span class="True">     214:</span> <span class="k">/* Allow use of chroot() */</span>
<a name="215" /><span class="True">     215:</span> 
<a name="216" /><span class="True">     216:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19DSFJPT1RfMA__"><span class="b">CAP_SYS_CHROOT</span></a>       <span class="c">18</span>
<a name="217" /><span class="True">     217:</span> 
<a name="218" /><span class="True">     218:</span> <span class="k">/* Allow ptrace() of any process */</span>
<a name="219" /><span class="True">     219:</span> 
<a name="220" /><span class="True">     220:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19QVFJBQ0VfMA__"><span class="b">CAP_SYS_PTRACE</span></a>       <span class="c">19</span>
<a name="221" /><span class="True">     221:</span> 
<a name="222" /><span class="True">     222:</span> <span class="k">/* Allow configuration of process accounting */</span>
<a name="223" /><span class="True">     223:</span> 
<a name="224" /><span class="True">     224:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19QQUNDVF8w"><span class="b">CAP_SYS_PACCT</span></a>        <span class="c">20</span>
<a name="225" /><span class="True">     225:</span> 
<a name="226" /><span class="True">     226:</span> <span class="k">/* Allow configuration of the secure attention key */</span>
<a name="227" /><span class="True">     227:</span> <span class="k">/* Allow administration of the random device */</span>
<a name="228" /><span class="True">     228:</span> <span class="k">/* Allow examination and configuration of disk quotas */</span>
<a name="229" /><span class="True">     229:</span> <span class="k">/* Allow setting the domainname */</span>
<a name="230" /><span class="True">     230:</span> <span class="k">/* Allow setting the hostname */</span>
<a name="231" /><span class="True">     231:</span> <span class="k">/* Allow calling bdflush() */</span>
<a name="232" /><span class="True">     232:</span> <span class="k">/* Allow mount() and umount(), setting up new smb connection */</span>
<a name="233" /><span class="True">     233:</span> <span class="k">/* Allow some autofs root ioctls */</span>
<a name="234" /><span class="True">     234:</span> <span class="k">/* Allow nfsservctl */</span>
<a name="235" /><span class="True">     235:</span> <span class="k">/* Allow VM86_REQUEST_IRQ */</span>
<a name="236" /><span class="True">     236:</span> <span class="k">/* Allow to read/write pci config on alpha */</span>
<a name="237" /><span class="True">     237:</span> <span class="k">/* Allow irix_prctl on mips (setstacksize) */</span>
<a name="238" /><span class="True">     238:</span> <span class="k">/* Allow flushing all cache on m68k (sys_cacheflush) */</span>
<a name="239" /><span class="True">     239:</span> <span class="k">/* Allow removing semaphores */</span>
<a name="240" /><span class="True">     240:</span> <span class="k">/* Used instead of CAP_CHOWN to &quot;chown&quot; IPC message queues, semaphores</span>
<a name="241" /><span class="True">     241:</span> <span class="k">   and shared memory */</span>
<a name="242" /><span class="True">     242:</span> <span class="k">/* Allow locking/unlocking of shared memory segment */</span>
<a name="243" /><span class="True">     243:</span> <span class="k">/* Allow turning swap on/off */</span>
<a name="244" /><span class="True">     244:</span> <span class="k">/* Allow forged pids on socket credentials passing */</span>
<a name="245" /><span class="True">     245:</span> <span class="k">/* Allow setting readahead and flushing buffers on block devices */</span>
<a name="246" /><span class="True">     246:</span> <span class="k">/* Allow setting geometry in floppy driver */</span>
<a name="247" /><span class="True">     247:</span> <span class="k">/* Allow turning DMA on/off in xd driver */</span>
<a name="248" /><span class="True">     248:</span> <span class="k">/* Allow administration of md devices (mostly the above, but some</span>
<a name="249" /><span class="True">     249:</span> <span class="k">   extra ioctls) */</span>
<a name="250" /><span class="True">     250:</span> <span class="k">/* Allow tuning the ide driver */</span>
<a name="251" /><span class="True">     251:</span> <span class="k">/* Allow access to the nvram device */</span>
<a name="252" /><span class="True">     252:</span> <span class="k">/* Allow administration of apm_bios, serial and bttv (TV) device */</span>
<a name="253" /><span class="True">     253:</span> <span class="k">/* Allow manufacturer commands in isdn CAPI support driver */</span>
<a name="254" /><span class="True">     254:</span> <span class="k">/* Allow reading non-standardized portions of pci configuration space */</span>
<a name="255" /><span class="True">     255:</span> <span class="k">/* Allow DDI debug ioctl on sbpcd driver */</span>
<a name="256" /><span class="True">     256:</span> <span class="k">/* Allow setting up serial ports */</span>
<a name="257" /><span class="True">     257:</span> <span class="k">/* Allow sending raw qic-117 commands */</span>
<a name="258" /><span class="True">     258:</span> <span class="k">/* Allow enabling/disabling tagged queuing on SCSI controllers and sending</span>
<a name="259" /><span class="True">     259:</span> <span class="k">   arbitrary SCSI commands */</span>
<a name="260" /><span class="True">     260:</span> <span class="k">/* Allow setting encryption key on loopback filesystem */</span>
<a name="261" /><span class="True">     261:</span> <span class="k">/* Allow setting zone reclaim policy */</span>
<a name="262" /><span class="True">     262:</span> 
<a name="263" /><span class="True">     263:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19BRE1JTl8w"><span class="b">CAP_SYS_ADMIN</span></a>        <span class="c">21</span>
<a name="264" /><span class="True">     264:</span> 
<a name="265" /><span class="True">     265:</span> <span class="k">/* Allow use of reboot() */</span>
<a name="266" /><span class="True">     266:</span> 
<a name="267" /><span class="True">     267:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19CT09UXzA_"><span class="b">CAP_SYS_BOOT</span></a>         <span class="c">22</span>
<a name="268" /><span class="True">     268:</span> 
<a name="269" /><span class="True">     269:</span> <span class="k">/* Allow raising priority and setting priority on other (different</span>
<a name="270" /><span class="True">     270:</span> <span class="k">   UID) processes */</span>
<a name="271" /><span class="True">     271:</span> <span class="k">/* Allow use of FIFO and round-robin (realtime) scheduling on own</span>
<a name="272" /><span class="True">     272:</span> <span class="k">   processes and setting the scheduling algorithm used by another</span>
<a name="273" /><span class="True">     273:</span> <span class="k">   process. */</span>
<a name="274" /><span class="True">     274:</span> <span class="k">/* Allow setting cpu affinity on other processes */</span>
<a name="275" /><span class="True">     275:</span> 
<a name="276" /><span class="True">     276:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19OSUNFXzA_"><span class="b">CAP_SYS_NICE</span></a>         <span class="c">23</span>
<a name="277" /><span class="True">     277:</span> 
<a name="278" /><span class="True">     278:</span> <span class="k">/* Override resource limits. Set resource limits. */</span>
<a name="279" /><span class="True">     279:</span> <span class="k">/* Override quota limits. */</span>
<a name="280" /><span class="True">     280:</span> <span class="k">/* Override reserved space on ext2 filesystem */</span>
<a name="281" /><span class="True">     281:</span> <span class="k">/* Modify data journaling mode on ext3 filesystem (uses journaling</span>
<a name="282" /><span class="True">     282:</span> <span class="k">   resources) */</span>
<a name="283" /><span class="True">     283:</span> <span class="k">/* NOTE: ext2 honors fsuid when checking for resource overrides, so</span>
<a name="284" /><span class="True">     284:</span> <span class="k">   you can override using fsuid too */</span>
<a name="285" /><span class="True">     285:</span> <span class="k">/* Override size restrictions on IPC message queues */</span>
<a name="286" /><span class="True">     286:</span> <span class="k">/* Allow more than 64hz interrupts from the real-time clock */</span>
<a name="287" /><span class="True">     287:</span> <span class="k">/* Override max number of consoles on console allocation */</span>
<a name="288" /><span class="True">     288:</span> <span class="k">/* Override max number of keymaps */</span>
<a name="289" /><span class="True">     289:</span> 
<a name="290" /><span class="True">     290:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX1NZU19SRVNPVVJDRV8w"><span class="b">CAP_SYS_RESOURCE</span></a>     <span class="c">24</span>
<a name="291" /><span class="True">     291:</span> 
<a name="292" /><span class="True">     292:</span> <span class="k">/* Allow manipulation of system clock */</span>
<a name="293" /><span class="True">     293:</span> <span class="k">/* Allow irix_stime on mips */</span>
<a name="294" /><span class="True">     294:</span> <span class="k">/* Allow setting the real-time clock */</span>
<a name="295" /><span class="True">     295:</span> 
<a name="296" /><span class="True">     296:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19USU1FXzA_"><span class="b">CAP_SYS_TIME</span></a>         <span class="c">25</span>
<a name="297" /><span class="True">     297:</span> 
<a name="298" /><span class="True">     298:</span> <span class="k">/* Allow configuration of tty devices */</span>
<a name="299" /><span class="True">     299:</span> <span class="k">/* Allow vhangup() of tty */</span>
<a name="300" /><span class="True">     300:</span> 
<a name="301" /><span class="True">     301:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU19UVFlfQ09ORklHXzA_"><span class="b">CAP_SYS_TTY_CONFIG</span></a>   <span class="c">26</span>
<a name="302" /><span class="True">     302:</span> 
<a name="303" /><span class="True">     303:</span> <span class="k">/* Allow the privileged aspects of mknod() */</span>
<a name="304" /><span class="True">     304:</span> 
<a name="305" /><span class="True">     305:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX01LTk9EXzA_"><span class="b">CAP_MKNOD</span></a>            <span class="c">27</span>
<a name="306" /><span class="True">     306:</span> 
<a name="307" /><span class="True">     307:</span> <span class="k">/* Allow taking of leases on files */</span>
<a name="308" /><span class="True">     308:</span> 
<a name="309" /><span class="True">     309:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0xFQVNFXzA_"><span class="b">CAP_LEASE</span></a>            <span class="c">28</span>
<a name="310" /><span class="True">     310:</span> 
<a name="311" /><span class="True">     311:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0FVRElUX1dSSVRFXzA_"><span class="b">CAP_AUDIT_WRITE</span></a>      <span class="c">29</span>
<a name="312" /><span class="True">     312:</span> 
<a name="313" /><span class="True">     313:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0FVRElUX0NPTlRST0xfMA__"><span class="b">CAP_AUDIT_CONTROL</span></a>    <span class="c">30</span>
<a name="314" /><span class="True">     314:</span> 
<a name="315" /><span class="True">     315:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NFVEZDQVBfMA__"><span class="b">CAP_SETFCAP</span></a>         <span class="c">31</span>
<a name="316" /><span class="True">     316:</span> 
<a name="317" /><span class="True">     317:</span> <span class="k">/* Override MAC access.</span>
<a name="318" /><span class="True">     318:</span> <span class="k">   The base kernel enforces no MAC policy.</span>
<a name="319" /><span class="True">     319:</span> <span class="k">   An LSM may enforce a MAC policy, and if it does and it chooses</span>
<a name="320" /><span class="True">     320:</span> <span class="k">   to implement capability based overrides of that policy, this is</span>
<a name="321" /><span class="True">     321:</span> <span class="k">   the capability it should use to do so. */</span>
<a name="322" /><span class="True">     322:</span> 
<a name="323" /><span class="True">     323:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX01BQ19PVkVSUklERV8w"><span class="b">CAP_MAC_OVERRIDE</span></a>     <span class="c">32</span>
<a name="324" /><span class="True">     324:</span> 
<a name="325" /><span class="True">     325:</span> <span class="k">/* Allow MAC configuration or state changes.</span>
<a name="326" /><span class="True">     326:</span> <span class="k">   The base kernel requires no MAC configuration.</span>
<a name="327" /><span class="True">     327:</span> <span class="k">   An LSM may enforce a MAC policy, and if it does and it chooses</span>
<a name="328" /><span class="True">     328:</span> <span class="k">   to implement capability based checks on modifications to that</span>
<a name="329" /><span class="True">     329:</span> <span class="k">   policy or the data required to maintain it, this is the</span>
<a name="330" /><span class="True">     330:</span> <span class="k">   capability it should use to do so. */</span>
<a name="331" /><span class="True">     331:</span> 
<a name="332" /><span class="True">     332:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX01BQ19BRE1JTl8w"><span class="b">CAP_MAC_ADMIN</span></a>        <span class="c">33</span>
<a name="333" /><span class="True">     333:</span> 
<a name="334" /><span class="True">     334:</span> <span class="k">/* Allow configuring the kernel&apos;s syslog (printk behaviour) */</span>
<a name="335" /><span class="True">     335:</span> 
<a name="336" /><span class="True">     336:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1NZU0xPR18w"><span class="b">CAP_SYSLOG</span></a>           <span class="c">34</span>
<a name="337" /><span class="True">     337:</span> 
<a name="338" /><span class="True">     338:</span> <span class="k">/* Allow triggering something that will wake the system */</span>
<a name="339" /><span class="True">     339:</span> 
<a name="340" /><span class="True">     340:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX1dBS0VfQUxBUk1fMA__"><span class="b">CAP_WAKE_ALARM</span></a>            <span class="c">35</span>
<a name="341" /><span class="True">     341:</span> 
<a name="342" /><span class="True">     342:</span> <span class="k">/* Allow preventing system suspends */</span>
<a name="343" /><span class="True">     343:</span> 
<a name="344" /><span class="True">     344:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0JMT0NLX1NVU1BFTkRfMA__"><span class="b">CAP_BLOCK_SUSPEND</span></a>    <span class="c">36</span>
<a name="345" /><span class="True">     345:</span> 
<a name="346" /><span class="True">     346:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Q0FQX0xBU1RfQ0FQXzA_"><span class="b">CAP_LAST_CAP</span></a>         <a href="cpu.c_macros_noref.html#_Q0FQX0JMT0NLX1NVU1BFTkRfMA__"><span class="b">CAP_BLOCK_SUSPEND</span></a>
<a name="347" /><span class="True">     347:</span> 
<a name="348" /><span class="True">     348:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Y2FwX3ZhbGlkXzA_"><span class="b">cap_valid</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&gt;=</span> <span class="c">0</span> <span class="f">&amp;&amp;</span> <span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&lt;=</span> <a href="cpu.c_macros_noref.html#_Q0FQX0xBU1RfQ0FQXzA_"><span class="b">CAP_LAST_CAP</span></a><span class="f">)</span>
<a name="349" /><span class="True">     349:</span> 
<a name="350" /><span class="True">     350:</span> <span class="k">/*</span>
<a name="351" /><span class="True">     351:</span> <span class="k"> * Bit location of each capability (used by user-space library and kernel)</span>
<a name="352" /><span class="True">     352:</span> <span class="k"> */</span>
<a name="353" /><span class="True">     353:</span> 
<a name="354" /><span class="True">     354:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX1RPX0lOREVYXzA_"><span class="b">CAP_TO_INDEX</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>     <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&gt;&gt;</span> <span class="c">5</span><span class="f">)</span>        <span class="k">/* 1 &lt;&lt; 5 == bits in __u32 */</span>
<a name="355" /><span class="True">     355:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_Q0FQX1RPX01BU0tfMA__"><span class="b">CAP_TO_MASK</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span>      <span class="f">(</span><span class="c">1</span> <span class="f">&lt;&lt;</span> <span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&amp;</span> <span class="c">31</span><span class="f">)</span><span class="f">)</span> <span class="k">/* mask for indexed __u32 */</span>
<a name="356" /><span class="True">     356:</span> 
<a name="357" /><span class="True">     357:</span> 
<a name="358" /><span class="True">     358:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _UAPI_LINUX_CAPABILITY_H */</span>
<a name="359" /><span class="True">     359:</span> </pre>
  </body>
</html>
